package com.zmn.plat.persistence.interfaces.user;

import com.zmn.common.dto.StatusDTO;
import com.zmn.plat.model.entity.user.User;
import com.zmn.plat.model.entity.user.UserQuery;

import java.util.List;

/**
 * @author nowind
 * @since 17/07/31 11:11
 */
public interface UserDao {

    User findByKey(Integer userId);

    Integer findMobileExists(User user);
    Integer findMailExists(User user);

    List<User> listPageByQuery(UserQuery query);

    List<User> listByQuery(UserQuery query);

    Integer countByQuery(UserQuery query);


    Integer updateByKey(User user);

    Integer updateStatus(User user);

    Integer updateStatusBatch(StatusDTO dto);

    Integer updateUserName(User user);

    Integer updateAvatar(User user);

    Integer updateMobile(User user);

    Integer updateWx(User user);

    Integer updateGroup(User user);

    Integer updateAuthMobile(User user);

    Integer updateAuthMail(User user);

    Integer updateEditName(User user);

    Integer updateFocusWx(User user);

    Integer updatePassword(User user);


    Integer insert(User user);


    Integer deleteByKey(Integer userId);

}
